草庐IT

Java ASN.1 编译器

全部标签

java - Grails 2.1.0 不自动重新加载/自动重新编译

似乎Grails会自动重新编译我的GSP页面,但不会自动重新编译我的Controller。它曾经与以前版本的Grails一起工作。知道我可以寻找什么吗?在OSXSnowLeopard上使用Grails2.1.0。注意:这类似于thisissue 最佳答案 免责声明:自动重新加载一直适用于我的Mac。我发现了一些可能有用的东西。首先,运行自定义环境(不是开发环境)似乎会禁用自动重新加载(seethisstackoverflowpost),因此如果您以这种方式运行应用程序,则需要遵循该帖子中的说明.其次,如果您将应用程序作为war运行,

java - 使用 -Xlint :deprecation for details 重新编译

我需要知道如何修复这些错误提示:Note:Summer.javausesoroverridesadeprecatedAPI.Note:Recompilewith-Xlint:deprecationfordetails.这是我的代码:importjava.util.Calendar;importjava.util.*;classSummer{publicstaticvoidmain(String[]args){Dated1=newDate();Datej21=newDate(d1.getYear(),6,21);if(d1.before(j21)){longdiff=j21.getTim

java - 泛型类和列表的奇怪编译错误

因此,在使用具有List(或Map或Set等)作为属性的泛型类时,我遇到了一个奇怪的编译错误。尝试迭代(使用foreach)列表时出现编译错误:Sample.java:11:error:incompatibletypesfor(Stringstring:s.getStringList()){required:Stringfound:Object明确一点,我知道这个问题有一个简单的解决方法,但我想了解代码有什么问题以下是我创建的示例:importjava.util.List;publicclassSample{publicListstringList;publicstaticvoidma

java - T...(泛型可变参数)真的在编译时被剥离为 Object[] 吗?

(我将在这里使用T来指代通用参数,用于参数化类。)我读到T...用作参数时是堆污染的潜在来源的原因是编译器对正常情况(没有T[]arraysallowed)规则,并允许T...(这是可变参数,因此通常会通过可变参数规则在内部转换为T[],除了这在泛型中是不允许的)作为参数通过在内部实现它就像它是原始类型一样,而是将其转换为Object[]的数组。所以我写了一些代码来验证这一点,将这个概念牢记在心。我将T...t作为方法的参数,然后System.out.println得到t.getClass[]。我希望得到Object[]的类,但我得到的是T[]的类。因此,编译器似乎在内部将T...t转

java - 如果编译器可以内联日志调用,为什么还要在日志 API 中使用 lambda 表达式

许多日志记录框架(例如log4j)允许您将lambda表达式而不是String传递给日志记录API。论据是,如果字符串构造起来特别具有表现力,则可以通过lambda表达式延迟执行字符串构造。这样,仅当系统的日志级别与调用的日志级别匹配时才构建字符串。但是,鉴于现代编译器会自动执行很多方法内联,以这种方式使用lambda表达式真的有意义吗?我将在下面提供一个简化的示例来证明这种担忧。假设我们传统的日志记录方法是这样的:voidlog(intlevel,Stringmessage){if(level>=System.logLevel)System.out.println(message);

java - 获取 JAR 编译时间

我正在尝试获取从Eclipse导出的可运行JAR文件的编译时间。一种方法可能是获取META-INF/MANIFEST.MF文件的修改时间。不幸的是,我似乎无法找到获取此信息的方法(我知道如何使用getResourceAsStream("/META-INF/MANIFEST.MF")读取list本身,但我不能似乎能够读取它的修改时间)。有人知道怎么做吗? 最佳答案 如果您有权访问jar文件本身,您应该能够使用java.util.jar包读取jar文件,然后获取list的ZipEntry文件并对其使用getTime()以获取其最后更新时

java - java编译器如何在类路径未设置为jdk路径的情况下找到类文件?

我正试图深入了解Java编译。所以我放下我的IDE,开始使用MS-DOS命令行...我创建了一个简单的项目,如下图所示:示例应用|____**src**|_____pack|______Sample.java|____**classes**这是Sample.java源代码:publicclassSample{privateStrings=newString("Hello,world");publicSample(){System.out.println(s);}}我只是想编译这个类,所以我使用了javac命令:prompt\SampleApp\src>javac-d..\classes

解决ubuntu 22.04新内核6.5.0-15无法编译NVIDIA显卡驱动

这里的新内核应该包括6.5.*系列的文章目录遇到的问题:遇到的问题:今天我在安装NVIDIA显卡驱动发现了一个问题,主要日志如下所示:make[3]:***[scripts/Makefile.build:251:/tmp/selfgz1310041/NVIDIA-Linux-x86_64-550.54.14/kernel/nvidia/nvlink_linux.o]Error1make[3]:Target'/tmp/selfgz1310041/NVIDIA-Linux-x86_64-550.54.14/kernel/'notremadebecauseoferrors.make[2]:***[/

java - 为什么 .forEach(val -> list.add()) 编译而 .forEach(val -> true) 不编译?

这个问题在这里已经有了答案:WhydoConsumersacceptlambdaswithstatementbodiesbutnotexpressionbodies?(3个答案)WhydoesaJavamethodreferencewithreturntypematchtheConsumerinterface?(2个答案)关闭4年前。最好在代码中表达这种行为:Listlist=newArrayList();Stream.of(1,2,3).forEach(i->list.add(1));//COMPILESStream.of(1,2,3).forEach(i->true);//DOES

编译C ++代码后的大尺寸

我的IDE是Code::Blocks我写了一个简单的C++代码#includeusingnamespacestd;intmain(void){cout我用gcc7.1与C++14支持当我选择调试模式&构建&运行其生成的应用程序:Outputfileisbin\Debug\learn.exewithsize13.56MB笔记:尺寸为13.56MB之后,我选择了释放模式,然后我构建了&运行了该应用程序,它给了我这个:Outputfileisbin\Release\learn.exewithsize1.12MB现在输出为1.12MB如果有数据丢失或类似的内容,我可能会感到困惑